package edu.cmu.cs.stage3.alice.authoringtool.util;

import javax.swing.tree.TreeModel;

public interface TreeTableModel extends TreeModel
{
	/**
	 * Returns the number ofs availible column.
	 */
	public int getColumnCount();

	/**
	 * Returns the name for column number <code>column</code>.
	 */
	public String getColumnName(int column);

	/**
	 * Returns the type for column number <code>column</code>.
	 */
	public Class getColumnClass(int column);

	/**
	 * Returns the value to be displayed for node <code>node</code>,
	 * at column number <code>column</code>.
	 */
	public Object getValueAt(Object node, int column);

	public Class getTypeAt( Object node, int column );
	public boolean isNullValidAt( Object node, int column );

	/**
	 * Indicates whether the the value for node <code>node</code>,
	 * at column number <code>column</code> is editable.
	 */
	public boolean isCellEditable(Object node, int column);

	/**
	 * Sets the value for node <code>node</code>,
	 * at column number <code>column</code>.
	 */
	public void setValueAt(Object aValue, Object node, int column);
}
